package com.farm.learn.service;

import com.farm.learn.domain.Playtime;
import com.farm.learn.domain.ex.PlayInfo;
import com.farm.core.sql.query.DataQuery;

import java.util.HashMap;
import java.util.Map;

import com.farm.core.auth.domain.LoginUser;

/* *
 *功能：课件播放时常服务层接口
 *详细：
 *
 *版本：v0.1
 *作者：FarmCode代码工程
 *日期：20150707114057
 *说明：
 */
public interface PlaytimeServiceInter {
	public static Map<String, PlayInfo> playingCache = new HashMap<>();

	/**
	 * 加载播放缓存(将缓存写入数据库)
	 */
	public void loadPlayCache();

	/**
	 * 删除实体管理实体
	 * 
	 * @param entity
	 */
	public void deletePlaytimeEntity(String id, LoginUser user);

	/**
	 * 创建一个基本查询用来查询当前实体管理实体
	 * 
	 * @param query 传入的查询条件封装
	 * @return
	 */
	public DataQuery createPlaytimeSimpleQuery(DataQuery query);

	/**
	 * 获得课程实际学习时间
	 * 
	 * @param classid
	 * @param userid
	 * @param maxtime 课程实际时间
	 * @return
	 */
	public int getClassLeanTime(String classid, String userid, int maxtime);

	/**
	 * 获得课时学习时间
	 * 
	 * @param hourid  课时id
	 * @param userid  用户id
	 * @param maxtime 课时实际时间
	 */
	public Playtime getHourPlayTime(String hourid, String userid);
}